/**
 * <b>项目名称：</b>网络应用框架<br/>
 * <b>包    名：</b>com.hhwy.framework.util<br/>
 * <b>文 件 名：</b>CustomObjectInputStream.java<br/>
 * <b>版本信息：</b><br/>
 * <b>日    期：</b>2016年6月1日-下午11:27:10<br/>
 * <b>Copyright (c)</b> 2016恒华伟业科技股份有限公司-版权所有<br/>
 * 
 */
package com.hhwy.framework.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectStreamClass;

/**
 * <b>类 名 称：</b>CustomObjectInputStream<br/>
 * <b>类 描 述：</b>扩展ObjectInputStream对象,使其能够在当前线程classloader中查找类<br/>
 * <b>创 建 人：</b>liuhai<br/>
 * <b>修 改 人：</b>liuhai<br/>
 * <b>修改时间：</b>2016年6月1日 下午11:27:10<br/>
 * <b>修改备注：</b><br/>
 * 
 * @version 1.0.0<br/>
 */
public class CustomObjectInputStream extends ObjectInputStream {

	/**
	 * 创建一个新的CustomObjectInputStream.java实例 CustomObjectInputStream.
	 *
	 * @throws IOException
	 * @throws SecurityException
	 */
	 
	protected CustomObjectInputStream() throws IOException, SecurityException {
		super();
		// TODO Auto-generated constructor stub
	}
	
    public CustomObjectInputStream(InputStream in) throws IOException {
       super(in);
    }
	
	@Override
	protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
        try {
            return super.resolveClass(desc);
        } catch (ClassNotFoundException ex) {
        	try {
        		String name = desc.getName();
				ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
				return Class.forName(name, false, classLoader);
			} catch (Exception e) {
				throw ex;
			}
        }
    }
	
}
